#ifndef __INTERRUPT_H__
#define __INTERRUPT_H__

#include <kernelConfig.h>
#include <kernelAsm.h>

extern unsigned char exceptStack[CONFIG_EXCEPT_STACK_SIZE];
extern volatile unsigned int systemTick;

#define DISABLE_INTERRUPT()		DisableInterruptsFromThumb();
#define ENABLE_INTERRUPT()		EnableInterruptsFromThumb();

/* ------------------------------------
 * Interrupt Process API
 *------------------------------------*/
void InitInterrupt(void);
unsigned int IntSaveDisableIRQ(void);
void IntRestoreIRQ(unsigned int);
void IntEnable(void);
void IntUnknownHandler(void);
void IntSetHandler(int intNum, void (*handler)(void));
void IntSetHandlerAndUnmask(int intNum, void (*handler)(void));
void IntUnmask(int);
void IntMask(int);
void IntClearPend(int);
void IntGetPends(unsigned int *pend0, unsigned int *pend1, unsigned int *pend2);
void IntCommonHandler(void);


#endif /* __INTERRUPT_H__ end. */



